//package com.yunhe.device.service.base;
//
//import com.yunhe.device.domain.base.PointDataType;
//import com.yunhe.device.domain.base.PointMeasureType;
//import com.yunhe.common.exception.ArgumentErrorException;
//import com.yunhe.common.exception.DatabaseProcessException;
//import com.yunhe.common.exception.ObjectNotFoundException;
//import com.yunhe.common.exception.UniqueConstraintsException;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.util.List;
//
///**
// * 点号数据类型Service
// * @desc 点号数据类型服务类定义
// * @author liuronglei
// */
//public interface PointDataTypeService {
//
//    /**
//     * 新增点号数据类型
//     * @param pointDataType 点号数据类型对象
//     */
//    @Transactional
//    PointDataType createPointDataType(PointDataType pointDataType)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException;
//
//    /**
//     * 批量新增点号数据类型
//     * @param pointDataTypeList 点号数据类型对象列表
//     */
//    @Transactional
//    Iterable<PointDataType> createPointDataType(List<PointDataType> pointDataTypeList)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException;
//
//    /**
//     * 删除点号数据类型
//     * @param pointDataTypeId 点号数据类型ID
//     */
//    @Transactional
//    void deletePointDataType(Long pointDataTypeId);
//
//    /**
//     * 更新点号数据类型（更新全部字段）
//     * @param pointDataType 点号数据类型对象
//     */
//    @Transactional
//    PointDataType updatePointDataType(PointDataType pointDataType)
//            throws ArgumentErrorException, UniqueConstraintsException, ObjectNotFoundException;
//
//    /**
//     * 更新点号数据类型（更新指定字段）
//     * @param pointDataTypeId 点号数据类型ID
//     * @param code 代码
//     * @param name 编号
//     * @param title 标题
//     * @param sn 排序序号
//     * @param activity 是否可用
//     * @param unit
//     */
//    @Transactional
//    PointDataType updatePointDataType(Long pointDataTypeId,
//                                      Long code,
//                                      String name,
//                                      String title,
//                                      Long sn,
//                                      Boolean activity,
//                                      String unit)
//            throws ArgumentErrorException, ObjectNotFoundException, UniqueConstraintsException;
//
//    /**
//     * 根据ID获得点号数据类型对象
//     * @param id 状态ID
//     */
//    PointDataType findByPointDataTypeId(Long id);
//
//    /**
//     * 根据代码获得点号数据类型对象
//     * @param code 代码
//     */
//    PointDataType findByCode(Long code);
//
//    /**
//     * 根据编号获得点号数据类型对象
//     * @param name 编号
//     */
//    PointDataType findByName(String name);
//
//    /**
//     * 获得全部点号数据类型对象
//     */
//    Iterable<PointDataType> findPointDataTypes();
//
//    /**
//     * 根据代码绑定四遥类型
//     * @param code 点号数据类型代码
//     * @param pointMeasureTypeCode 四遥类型代码
//     */
//    @Transactional
//    void bindPointMeasureTypeByCode(Long code, Long pointMeasureTypeCode)
//            throws DatabaseProcessException;
//
//    /**
//     * 根据代码解绑四遥类型
//     * @param code 点号数据类型代码
//     * @param pointMeasureTypeCode 四遥类型代码
//     */
//    @Transactional
//    void unbindPointMeasureTypeByCode(Long code, Long pointMeasureTypeCode)
//            throws DatabaseProcessException;
//
//    /**
//     *更新四遥类型（根据代码）
//     * @param code
//     * @param pointMeasureTypeCodes
//     */
//    void updatePointMeasureTypeByCode(Long code, List<Long> pointMeasureTypeCodes)
//            throws DatabaseProcessException;
//
//    /**
//     * 获取四遥类型（根据代码）
//     * @param code
//     * @return
//     */
//    Iterable<PointMeasureType> getPointMeasureTypeByCode(Long code);
//
//    void updateAnalogStatus(Long id, Long analogStatusId);
//
//    void bindAnalogStatusByCode(Long code, Long analogStatusCode);
//
//    void unbindAnalogStatusByCode(Long code, Long analogStatusCode);
//
//    Long getFrequencyByCode(Long code);
//}
